<?php
namespace Jobs\UserProposal;

use UserProposal\Proposal;
/**
 * Выполняем то, что должны выполнить для принятых предложений пользоватлей
 * @author kosh
 *
 */
class ExecuteAction extends \Action {
	protected function run() {
		
		$this->response->noRender(true);		
		$this->response->noCache(true);
		
		$startTime = time();

		while ((time() - $startTime) < 60) {
			
			// получаем все предоожения на выполнение
			// по каждому получаем конфу откуда берём действие и выполняем его
			// с соответствующими параметрами
			$proposals = Proposal::find()->where('state', Proposal::STATE_JUDGED)->all();
			
			if (is_array($proposals)) foreach ($proposals as $proposal) {
				$config = $proposal->getConfig();
				$this->action($config['executeAction'], [
					'proposalId'=>(string)$proposal->_id, 
					'id'=>$proposal->id, 
					'params' => $proposal->params, 
					'resolution' => $proposal->resolution
				]);
				$proposal->state = Proposal::STATE_EXECUTED;
				$proposal->save();
			}
			
			sleep(5);
		}
	}
}